package com.show.controller;

import com.shop.common.FastDFSClientUtils;
import com.shop.entity.Image;
import com.shop.service.ImageService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/***
 * 轮播图Controller
 */
@RestController
@RequestMapping("img")
public class RotaionImgController {
    @Autowired
    private ImageService imageService;
    static Logger log = LoggerFactory.getLogger(RotaionImgController.class);
    @GetMapping("list")
    public Dto list(int page,int limit){
//        log.info("进入list方法");
        return DtoUtil.returnPage(
                imageService.queryAllByLimit((page-1)*limit,limit),imageService.getCount()
        );
    }

    /***
     * 图片名称模糊查询 条件查询
     * @param image
     * @return
     */
    @PostMapping("querylist")
    public Dto querylist(Image image){
        return DtoUtil.returnDataSuccess(imageService.queryAll(image));
    }
    /***
     * 新增轮播图信息
     * @param image
     * @return
     */
    @PostMapping("addRotationImg")
    public Dto addRotationImg(Image image){
        Image image1 = new Image();
        image1 = imageService.insert(image);
        if (image1 == null){
            return DtoUtil.returnFail("新增失败",500);
        }else {
            //未做列的null值判断，根据数据库空值自行添加
            return DtoUtil.returnSuccess("新增成功");
        }
    }

    /***
     * 修改轮播图信息 条件id
     * @param image
     * @return
     */
    @PostMapping("updateImage")
    public Dto updateImage(Image image){
        System.out.println(image.getTimeon());
//        //时间转换
//        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        dateFormat.setLenient(false);//
//        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
        Image image1 = new Image();
        image1 = imageService.update(image);
        if (image1 == null){
            return DtoUtil.returnFail("修改失败",500);
        }else {
            //未做列的null值判断，根据数据库空值自行添加
            return DtoUtil.returnSuccess("修改成功");
        }
    }
    /***
     * 根据id删除轮播图信息
     * @param id
     * @return
     */
    @PostMapping("deleteById")
    public Dto deleteById(int id){
        if (imageService.deleteById(id)){
            return DtoUtil.returnSuccess("删除成功");
        }else {
            return DtoUtil.returnFail("删除失败",500);
        }
    }
    /**
     * 图片文件上传
     * @param file
     * @return
     */
    @PostMapping("uploadIma")
    public Dto uploadIma(MultipartFile file,String url){
        //问题 图片重复上传 界面最好显示对应图片

        if(file.isEmpty()){
            return DtoUtil.returnFail("文件夹为空",500);
        }
        if(url != null || url.equals("")){
            //执行删除操作 split：把字符串划分成数组 第0个值
            FastDFSClientUtils.delete(url.split("/")[0],url);
        }
        try{
//            //获取图片二进制流
//            String file1 = FastDFSClientUtils.upload(file.getBytes(),file.getOriginalFilename());
//            //服务器存储图片路径
//            String file2 = "http://47.114.97.182/";
//            //拼接字符串
//            String file3 = file2+file1;
//            //图片二进制流 获取图片名称后缀 上传成功后返回字符串
//            Image i = new Image();
//            i.setSrc(file3);
            return DtoUtil.returnSuccess("上传成功",FastDFSClientUtils.upload(file.getBytes(),file.getOriginalFilename()));
        }catch (Exception e){
            log.error("异常"+e);
            e.printStackTrace();
        }
        return DtoUtil.returnFail("上传失败，请联系管理员",50);
    }
}
